#include <iostream>
#include <memory>

#include "modbus_serial_port.h"
#include "serial_port.h"
int main(int argc, char* argv[]) {
  // 1. 初始化串口配置（与主站保持一致）
  SerialConfig config;
  config.baut_rate = 9600;                  // 波特率9600
  config.data_bits = DataBits::EIGHT;       // 8位数据位
  config.stop_bits = StopBits::ONE;         // 1位停止位
  config.parity = Parity::NONE;             // 无校验
  config.flow_control = FlowControl::NONE;  // 无流控
  std::string name = argv[1];
  // 2. 创建串口对象
  SerialPort serial(name, config);
  std::cout << "从站：串口 打开成功，等待请求..." << std::endl;

  // 4. 创建Modbus从站对象
  std::shared_ptr<ModbusBase> modbus_slave =
      std::make_shared<ModbusSlave>(serial, 5000, 256);
  modbus_slave->SetSlaveAddress(0x01);

  // 5. 启动监听
  modbus_slave->Start();

  return 0;
}